<pre>
<?c

	out << parser::EncodeJsonStr< str::t_string >( "JSON Encode String \x05" ) + "\n";
	out << parser::DecodeJsonStr< str::t_string >( "JSON Decode String \\u0041" ) + "\n";

	tq::set( "a", "12345" );
	out << tq::get( "a" ) << "\n";

?><?global

	long mythread( CThread*, void* )
	{
		tq::set( "b", "98765" );
		return -1;
	}

?><?c

	tq::start( "", mythread );
	tq::wait( "b", 3000 );
	out << tq::get( "b" ) << "\n";

	t_pb8 pb;
	pb[ "A" ][ "AA" ] = "Hello World!";
	pb[ "A" ][ "AB" ] = (long)444;
	pb[ "A" ][ "AC" ] = (long)999;
	pb[ "B" ][ "BA" ] = (double)3.14159;

	out << "A.AA = " << pb.at( "A.AA", "." ) << "\n";

	out << parser::EncodeJson( pb ) + "\n";

	pb.is_list( true );
	pb[ "A" ].is_list( true );
	out << parser::EncodeJson( pb ) + "\n";

	str::t_string8 s = parser::EncodeJson( pb );
	t_pb8 pb2 = parser::DecodeJson< t_pb8 >( s );
	out << parser::EncodeJson( pb2 ) + "\n";

	t_pb8 pb3;
	pb3[ "a" ] = "A";
	pb3[ "b" ] = "B";
	pb3[ "=& c++" ] = "=== This & That ===";

	str::t_string8 urlenc = parser::EncodeUrl( pb3 );
	out << urlenc + "\n"
		<< parser::EncodeJson( parser::DecodeUrl< t_pb8 >( urlenc ) ) + "\n";
	
	for( int i = 0; i < 3; i++ )
	{
?>
		<p>
			<b>Hello World!</b>
		</p>
<?c
	}
	
	const char *ps[] = { "hello world", "hola world" };
	out << str::ToString<str::t_string8 >
				( str::levstr< str::t_string8 >( ps[ 0 ], ps[ 1 ] ) )
			+ " : " + ps[ 0 ] + " -> " + ps[ 1 ];
?>
</pre>

